package com.fi.common.domain.vo;

import com.fi.recogn.dto.ExcelOcrPageDTO;
import com.fi.recogn.dto.table.Table;
import com.fi.recogn.util.FileTypeUtil.FileType;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @Author XianLei
 * @Desc
 * @Date 2023/07/14 18:34:33
 */
@Data
@Builder
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@ToString(exclude = {"inputStream"})
public class FileData {
    private Long id;//公共id
    private String manager;//机构名称
    private String fileName;//文件名
    private String pdfUrl;//pdf文件url
    private String fileUrl;//文件url
    private String fileExt;//文件扩展名
    private long fileSize;//文件大小 bytes
    private InputStream inputStream;//文件流
    private FileType fileType;//文件类型
    private String content;//正文内容(纯文本)
    private List<ExcelOcrPageDTO> ocrPages;//ocr结果

    protected void setOcrPages(Map<Integer, List<Table>> tableMap) {
        this.ocrPages = new ArrayList<>(tableMap.size());
        tableMap.forEach((pageNo, tables) -> {
            ExcelOcrPageDTO page = new ExcelOcrPageDTO();
            page.setPageNumber(pageNo);
            page.setTables(tables);
            this.ocrPages.add(page);
        });
    }
}
